home *** CD-ROM | disk | FTP | other *** search
INI File | 1992-08-27 | 4.4 KB | 175 lines |
- [as discussed in de-mirror up to Aug 07, 1992]
- [editorial changes / bug fixes by {cross,marion}@cs.tu-berlin.de Aug 15, 1992]
- [info-line extensions by {heiko,vera,cross}@{cs.t,f}u-berlin.de Aug 22, 1992]
- [info-line extensions frozen Aug 28, 1992]
-
- DRAFT Syntax for FTP server index files
- ---------------------------------------
-
-
- index = *( line CRLF )
-
- line = comment-line
- / info-line
- / index-line
-
- comment-line = "#" white-space text
- -- user information, format undefined
-
- info-line = "#" 1*<any CHAR, excluding white-space and CRLF>
- white-space text
- -- reserved for further parsable
- information (contact addresses,
- IP addresses...)
- (preliminary standard see below)
-
- index-line = directory-line
- / symlink-line
- / file-line
-
- directory-line = ("D" / "d")
- ("R" / "r" / "-")
- ("W" / "w" / "-")
- ("X" / "x")
- white-space
- date-time white-space
- "0" " "
- pathname
- -- directories always have size 0.
- the search permission 'x' must
- be set.
-
- file-line = ("F" / "f")
- ("R" / "r")
- ("W" / "w" / "-")
- ("X" / "x" / "-")
- white-space
- date-time white-space
- size " "
- pathname
- -- files must be readable.
- There is NO white-space between
- size and pathname to support
- pathnames with leading
- white-space.
-
- symlink-line = ("L" / "l")
- "---"
- white-space
- date-time white-space
- "0" " "
- pathname
- " " "-" ">" " "
- pathname
- -- symlinks have size 0 and
- mode '---' by convention.
- There is NO white-space
- between the two pathnames
- in order to support pathnames
- containing white-space.
-
- date-time = date " " time
-
- date = day "-" month-name "-" year
-
- time = hour ":" minute
- -- time should be given in GMT
-
- day = ("0" / "1" / "2" / "3")
- DIGIT
- -- days < 10 have a leading 0.
-
- month-name = ("Jan" / "Feb" / "Mar" / "Apr" / "May" /
- "Jun" / "Jul" / "Aug" / "Sep" / "Oct" /
- "Nov" / "Dec")
-
- year = 4*DIGIT
- -- year should be >= 1970.
-
- hour = 2*DIGIT
- -- in 24 hour notation; entries
- < 10 have leading zeros
-
- minute = 2*DIGIT -- entries < 10 with leading
- zeros
-
- size = ( <any DIGIT except "0"> *( DIGIT ) )
- / "0"
-
- pathname = <any text not containing CRLF or " -> ">
- -- path components should be
- divided by "/" (UNIX
- pathname convention).
-
- text = *( CHAR )
-
- white-space = *( <ASCII SPACE> / <ASCII TAB>)
-
- token = <text without white-space>
-
- CHAR = <any ISO-8859-1 (8-bit ISO10646 subset) character>
- -- in POSIX.1, file names may
- contain any printable
- 8-bit-character (at least,
- I think so ;-)).
-
- NUMBER = DIGIT *( DIGIT )
-
- DIGIT = <any ASCII digit "0" .. "9">
-
-
-
- valid Info Line keywords && formats (preliminary)
- -------------------------------------------------
- ( M = multiple lines allowed, ! = mandatory )
-
- !M server-name = "#NAME" white-space token
- -- any CNAME, first occurrence
- is preferred
-
- M contact-address = "#MAIL" white-space *( token )
- -- RFC822 mail addresses
-
- ! index-version = "#VERSION" white-space NUMBER "." NUMBER
- -- INDEX format version. MANDATORY.
- Indices without a #VERSION-line
- are illegal.
-
- ! create-date = "#CREATED" white-space date-time
- -- index creation time, same timezone
- and format as other INDEX dates.
- Mandatory because it is used for
- diffs.
-
- timezone = ( "+" / "-" ) <four digits>
- white-space text
- -- offset to GMT as in RFC822
- text is optional and describes
- the timezone (not parsed)
-
- index-timezone = "#INDEX-TIMEZONE" white-space timezone
- -- timezone of INDEX dates,
- always +0000
-
- server-timezone = "#SERVER-TIMEZONE" white-space timezone
- -- server's home timezone
-
- organization = "#ORGANIZATION" white-space text
- -- name of server's organization;
- not parsed
-
- location = "#LOCATION" white-space text
- -- server coordinates etc. (not spec)
-
- access = "#ACCESS" white-space text
- -- access restrictions, not parsed.
-
- sort-field = "date" / "path" / "filename"
-
- sort-specifier = [ "casesensitive" white-space]
- [ "reverse" white-space]
- sort-field
-
- sort = "#SORT" sort-specifier
- -- no sort line means unsorted
-